/**
 * This is a generated class and is not intended for modification.  To customize behavior
 * of this value object you may modify the generated sub-class of this class - VoClientMaster.as.
 */

package com.model.valueObjects
{
import com.adobe.fiber.services.IFiberManagingService;
import com.adobe.fiber.util.FiberUtils;
import com.adobe.fiber.valueobjects.IValueObject;
import flash.events.Event;
import flash.events.EventDispatcher;
import mx.binding.utils.ChangeWatcher;
import mx.events.PropertyChangeEvent;
import mx.validators.ValidationResult;

import flash.net.registerClassAlias;
import flash.net.getClassByAlias;
import com.adobe.fiber.core.model_internal;
import com.adobe.fiber.valueobjects.IPropertyIterator;
import com.adobe.fiber.valueobjects.AvailablePropertyIterator;

use namespace model_internal;

[ExcludeClass]
public class _Super_VoClientMaster extends flash.events.EventDispatcher implements com.adobe.fiber.valueobjects.IValueObject
{
    model_internal static function initRemoteClassAliasSingle(cz:Class) : void
    {
        try
        {
            if (flash.net.getClassByAlias("VoClientMaster") == null)
            {
                flash.net.registerClassAlias("VoClientMaster", cz);
            }
        }
        catch (e:Error)
        {
            flash.net.registerClassAlias("VoClientMaster", cz);
        }
    }

    model_internal static function initRemoteClassAliasAllRelated() : void
    {
    }

    model_internal var _dminternal_model : _VoClientMasterEntityMetadata;

    /**
     * properties
     */
    private var _internal_client_remarks : String;
    private var _internal_client_contact_person : String;
    private var _internal_serialnumber : int;
    private var _internal_country_name : String;
    private var _internal_country_serialnumber_fk : int;
    private var _internal_client_off_addr : String;
    private var _internal_change_client_id : Boolean;
    private var _internal_client_contact_phone : String;
    private var _internal_client_regno2 : String;
    private var _internal_client_regno1 : String;
    private var _internal_activestatus : Boolean;
    private var _internal_client_id : String;
    private var _internal_client_name : String;
    private var _internal_off_phone : String;
    private var _internal_cre_datetime : String;
    private var _internal_del_phone : String;
    private var _internal_client_pricecategory : String;
    private var _internal_client_url : String;
    private var _internal_cre_userid : int;
    private var _internal_client_fax : String;
    private var _internal_cust_type : String;
    private var _internal_client_del_addr : String;
    private var _internal_client_contact_email : String;
    private var _internal_state_serialnumber_fk : int;
    private var _internal_client_email : String;

    private static var emptyArray:Array = new Array();


    /**
     * derived property cache initialization
     */
    model_internal var _cacheInitialized_isValid:Boolean = false;

    model_internal var _changeWatcherArray:Array = new Array();

    public function _Super_VoClientMaster()
    {
        _model = new _VoClientMasterEntityMetadata(this);

        // Bind to own data properties for cache invalidation triggering
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_remarks", model_internal::setterListenerClient_remarks));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_contact_person", model_internal::setterListenerClient_contact_person));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "country_name", model_internal::setterListenerCountry_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_off_addr", model_internal::setterListenerClient_off_addr));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_contact_phone", model_internal::setterListenerClient_contact_phone));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_regno2", model_internal::setterListenerClient_regno2));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_regno1", model_internal::setterListenerClient_regno1));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_id", model_internal::setterListenerClient_id));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_name", model_internal::setterListenerClient_name));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "off_phone", model_internal::setterListenerOff_phone));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "cre_datetime", model_internal::setterListenerCre_datetime));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "del_phone", model_internal::setterListenerDel_phone));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_pricecategory", model_internal::setterListenerClient_pricecategory));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_url", model_internal::setterListenerClient_url));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_fax", model_internal::setterListenerClient_fax));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "cust_type", model_internal::setterListenerCust_type));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_del_addr", model_internal::setterListenerClient_del_addr));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_contact_email", model_internal::setterListenerClient_contact_email));
        model_internal::_changeWatcherArray.push(mx.binding.utils.ChangeWatcher.watch(this, "client_email", model_internal::setterListenerClient_email));

    }

    /**
     * data property getters
     */

    [Bindable(event="propertyChange")]
    public function get client_remarks() : String
    {
        return _internal_client_remarks;
    }

    [Bindable(event="propertyChange")]
    public function get client_contact_person() : String
    {
        return _internal_client_contact_person;
    }

    [Bindable(event="propertyChange")]
    public function get serialnumber() : int
    {
        return _internal_serialnumber;
    }

    [Bindable(event="propertyChange")]
    public function get country_name() : String
    {
        return _internal_country_name;
    }

    [Bindable(event="propertyChange")]
    public function get country_serialnumber_fk() : int
    {
        return _internal_country_serialnumber_fk;
    }

    [Bindable(event="propertyChange")]
    public function get client_off_addr() : String
    {
        return _internal_client_off_addr;
    }

    [Bindable(event="propertyChange")]
    public function get change_client_id() : Boolean
    {
        return _internal_change_client_id;
    }

    [Bindable(event="propertyChange")]
    public function get client_contact_phone() : String
    {
        return _internal_client_contact_phone;
    }

    [Bindable(event="propertyChange")]
    public function get client_regno2() : String
    {
        return _internal_client_regno2;
    }

    [Bindable(event="propertyChange")]
    public function get client_regno1() : String
    {
        return _internal_client_regno1;
    }

    [Bindable(event="propertyChange")]
    public function get activestatus() : Boolean
    {
        return _internal_activestatus;
    }

    [Bindable(event="propertyChange")]
    public function get client_id() : String
    {
        return _internal_client_id;
    }

    [Bindable(event="propertyChange")]
    public function get client_name() : String
    {
        return _internal_client_name;
    }

    [Bindable(event="propertyChange")]
    public function get off_phone() : String
    {
        return _internal_off_phone;
    }

    [Bindable(event="propertyChange")]
    public function get cre_datetime() : String
    {
        return _internal_cre_datetime;
    }

    [Bindable(event="propertyChange")]
    public function get del_phone() : String
    {
        return _internal_del_phone;
    }

    [Bindable(event="propertyChange")]
    public function get client_pricecategory() : String
    {
        return _internal_client_pricecategory;
    }

    [Bindable(event="propertyChange")]
    public function get client_url() : String
    {
        return _internal_client_url;
    }

    [Bindable(event="propertyChange")]
    public function get cre_userid() : int
    {
        return _internal_cre_userid;
    }

    [Bindable(event="propertyChange")]
    public function get client_fax() : String
    {
        return _internal_client_fax;
    }

    [Bindable(event="propertyChange")]
    public function get cust_type() : String
    {
        return _internal_cust_type;
    }

    [Bindable(event="propertyChange")]
    public function get client_del_addr() : String
    {
        return _internal_client_del_addr;
    }

    [Bindable(event="propertyChange")]
    public function get client_contact_email() : String
    {
        return _internal_client_contact_email;
    }

    [Bindable(event="propertyChange")]
    public function get state_serialnumber_fk() : int
    {
        return _internal_state_serialnumber_fk;
    }

    [Bindable(event="propertyChange")]
    public function get client_email() : String
    {
        return _internal_client_email;
    }

    /**
     * data property setters
     */

    public function set client_remarks(value:String) : void
    {
        var oldValue:String = _internal_client_remarks;
        if (oldValue !== value)
        {
            _internal_client_remarks = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_remarks", oldValue, _internal_client_remarks));
        }
    }

    public function set client_contact_person(value:String) : void
    {
        var oldValue:String = _internal_client_contact_person;
        if (oldValue !== value)
        {
            _internal_client_contact_person = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_contact_person", oldValue, _internal_client_contact_person));
        }
    }

    public function set serialnumber(value:int) : void
    {
        var oldValue:int = _internal_serialnumber;
        if (oldValue !== value)
        {
            _internal_serialnumber = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "serialnumber", oldValue, _internal_serialnumber));
        }
    }

    public function set country_name(value:String) : void
    {
        var oldValue:String = _internal_country_name;
        if (oldValue !== value)
        {
            _internal_country_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "country_name", oldValue, _internal_country_name));
        }
    }

    public function set country_serialnumber_fk(value:int) : void
    {
        var oldValue:int = _internal_country_serialnumber_fk;
        if (oldValue !== value)
        {
            _internal_country_serialnumber_fk = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "country_serialnumber_fk", oldValue, _internal_country_serialnumber_fk));
        }
    }

    public function set client_off_addr(value:String) : void
    {
        var oldValue:String = _internal_client_off_addr;
        if (oldValue !== value)
        {
            _internal_client_off_addr = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_off_addr", oldValue, _internal_client_off_addr));
        }
    }

    public function set change_client_id(value:Boolean) : void
    {
        var oldValue:Boolean = _internal_change_client_id;
        if (oldValue !== value)
        {
            _internal_change_client_id = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "change_client_id", oldValue, _internal_change_client_id));
        }
    }

    public function set client_contact_phone(value:String) : void
    {
        var oldValue:String = _internal_client_contact_phone;
        if (oldValue !== value)
        {
            _internal_client_contact_phone = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_contact_phone", oldValue, _internal_client_contact_phone));
        }
    }

    public function set client_regno2(value:String) : void
    {
        var oldValue:String = _internal_client_regno2;
        if (oldValue !== value)
        {
            _internal_client_regno2 = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_regno2", oldValue, _internal_client_regno2));
        }
    }

    public function set client_regno1(value:String) : void
    {
        var oldValue:String = _internal_client_regno1;
        if (oldValue !== value)
        {
            _internal_client_regno1 = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_regno1", oldValue, _internal_client_regno1));
        }
    }

    public function set activestatus(value:Boolean) : void
    {
        var oldValue:Boolean = _internal_activestatus;
        if (oldValue !== value)
        {
            _internal_activestatus = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "activestatus", oldValue, _internal_activestatus));
        }
    }

    public function set client_id(value:String) : void
    {
        var oldValue:String = _internal_client_id;
        if (oldValue !== value)
        {
            _internal_client_id = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_id", oldValue, _internal_client_id));
        }
    }

    public function set client_name(value:String) : void
    {
        var oldValue:String = _internal_client_name;
        if (oldValue !== value)
        {
            _internal_client_name = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_name", oldValue, _internal_client_name));
        }
    }

    public function set off_phone(value:String) : void
    {
        var oldValue:String = _internal_off_phone;
        if (oldValue !== value)
        {
            _internal_off_phone = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "off_phone", oldValue, _internal_off_phone));
        }
    }

    public function set cre_datetime(value:String) : void
    {
        var oldValue:String = _internal_cre_datetime;
        if (oldValue !== value)
        {
            _internal_cre_datetime = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "cre_datetime", oldValue, _internal_cre_datetime));
        }
    }

    public function set del_phone(value:String) : void
    {
        var oldValue:String = _internal_del_phone;
        if (oldValue !== value)
        {
            _internal_del_phone = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "del_phone", oldValue, _internal_del_phone));
        }
    }

    public function set client_pricecategory(value:String) : void
    {
        var oldValue:String = _internal_client_pricecategory;
        if (oldValue !== value)
        {
            _internal_client_pricecategory = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_pricecategory", oldValue, _internal_client_pricecategory));
        }
    }

    public function set client_url(value:String) : void
    {
        var oldValue:String = _internal_client_url;
        if (oldValue !== value)
        {
            _internal_client_url = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_url", oldValue, _internal_client_url));
        }
    }

    public function set cre_userid(value:int) : void
    {
        var oldValue:int = _internal_cre_userid;
        if (oldValue !== value)
        {
            _internal_cre_userid = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "cre_userid", oldValue, _internal_cre_userid));
        }
    }

    public function set client_fax(value:String) : void
    {
        var oldValue:String = _internal_client_fax;
        if (oldValue !== value)
        {
            _internal_client_fax = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_fax", oldValue, _internal_client_fax));
        }
    }

    public function set cust_type(value:String) : void
    {
        var oldValue:String = _internal_cust_type;
        if (oldValue !== value)
        {
            _internal_cust_type = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "cust_type", oldValue, _internal_cust_type));
        }
    }

    public function set client_del_addr(value:String) : void
    {
        var oldValue:String = _internal_client_del_addr;
        if (oldValue !== value)
        {
            _internal_client_del_addr = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_del_addr", oldValue, _internal_client_del_addr));
        }
    }

    public function set client_contact_email(value:String) : void
    {
        var oldValue:String = _internal_client_contact_email;
        if (oldValue !== value)
        {
            _internal_client_contact_email = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_contact_email", oldValue, _internal_client_contact_email));
        }
    }

    public function set state_serialnumber_fk(value:int) : void
    {
        var oldValue:int = _internal_state_serialnumber_fk;
        if (oldValue !== value)
        {
            _internal_state_serialnumber_fk = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "state_serialnumber_fk", oldValue, _internal_state_serialnumber_fk));
        }
    }

    public function set client_email(value:String) : void
    {
        var oldValue:String = _internal_client_email;
        if (oldValue !== value)
        {
            _internal_client_email = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "client_email", oldValue, _internal_client_email));
        }
    }

    /**
     * Data property setter listeners
     *
     * Each data property whose value affects other properties or the validity of the entity
     * needs to invalidate all previously calculated artifacts. These include:
     *  - any derived properties or constraints that reference the given data property.
     *  - any availability guards (variant expressions) that reference the given data property.
     *  - any style validations, message tokens or guards that reference the given data property.
     *  - the validity of the property (and the containing entity) if the given data property has a length restriction.
     *  - the validity of the property (and the containing entity) if the given data property is required.
     */

    model_internal function setterListenerClient_remarks(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_remarks();
    }

    model_internal function setterListenerClient_contact_person(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_contact_person();
    }

    model_internal function setterListenerCountry_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnCountry_name();
    }

    model_internal function setterListenerClient_off_addr(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_off_addr();
    }

    model_internal function setterListenerClient_contact_phone(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_contact_phone();
    }

    model_internal function setterListenerClient_regno2(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_regno2();
    }

    model_internal function setterListenerClient_regno1(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_regno1();
    }

    model_internal function setterListenerClient_id(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_id();
    }

    model_internal function setterListenerClient_name(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_name();
    }

    model_internal function setterListenerOff_phone(value:flash.events.Event):void
    {
        _model.invalidateDependentOnOff_phone();
    }

    model_internal function setterListenerCre_datetime(value:flash.events.Event):void
    {
        _model.invalidateDependentOnCre_datetime();
    }

    model_internal function setterListenerDel_phone(value:flash.events.Event):void
    {
        _model.invalidateDependentOnDel_phone();
    }

    model_internal function setterListenerClient_pricecategory(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_pricecategory();
    }

    model_internal function setterListenerClient_url(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_url();
    }

    model_internal function setterListenerClient_fax(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_fax();
    }

    model_internal function setterListenerCust_type(value:flash.events.Event):void
    {
        _model.invalidateDependentOnCust_type();
    }

    model_internal function setterListenerClient_del_addr(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_del_addr();
    }

    model_internal function setterListenerClient_contact_email(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_contact_email();
    }

    model_internal function setterListenerClient_email(value:flash.events.Event):void
    {
        _model.invalidateDependentOnClient_email();
    }


    /**
     * valid related derived properties
     */
    model_internal var _isValid : Boolean;
    model_internal var _invalidConstraints:Array = new Array();
    model_internal var _validationFailureMessages:Array = new Array();

    /**
     * derived property calculators
     */

    /**
     * isValid calculator
     */
    model_internal function calculateIsValid():Boolean
    {
        var violatedConsts:Array = new Array();
        var validationFailureMessages:Array = new Array();

        var propertyValidity:Boolean = true;
        if (!_model.client_remarksIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_remarksValidationFailureMessages);
        }
        if (!_model.client_contact_personIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_contact_personValidationFailureMessages);
        }
        if (!_model.country_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_country_nameValidationFailureMessages);
        }
        if (!_model.client_off_addrIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_off_addrValidationFailureMessages);
        }
        if (!_model.client_contact_phoneIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_contact_phoneValidationFailureMessages);
        }
        if (!_model.client_regno2IsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_regno2ValidationFailureMessages);
        }
        if (!_model.client_regno1IsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_regno1ValidationFailureMessages);
        }
        if (!_model.client_idIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_idValidationFailureMessages);
        }
        if (!_model.client_nameIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_nameValidationFailureMessages);
        }
        if (!_model.off_phoneIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_off_phoneValidationFailureMessages);
        }
        if (!_model.cre_datetimeIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_cre_datetimeValidationFailureMessages);
        }
        if (!_model.del_phoneIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_del_phoneValidationFailureMessages);
        }
        if (!_model.client_pricecategoryIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_pricecategoryValidationFailureMessages);
        }
        if (!_model.client_urlIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_urlValidationFailureMessages);
        }
        if (!_model.client_faxIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_faxValidationFailureMessages);
        }
        if (!_model.cust_typeIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_cust_typeValidationFailureMessages);
        }
        if (!_model.client_del_addrIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_del_addrValidationFailureMessages);
        }
        if (!_model.client_contact_emailIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_contact_emailValidationFailureMessages);
        }
        if (!_model.client_emailIsValid)
        {
            propertyValidity = false;
            com.adobe.fiber.util.FiberUtils.arrayAdd(validationFailureMessages, _model.model_internal::_client_emailValidationFailureMessages);
        }

        model_internal::_cacheInitialized_isValid = true;
        model_internal::invalidConstraints_der = violatedConsts;
        model_internal::validationFailureMessages_der = validationFailureMessages;
        return violatedConsts.length == 0 && propertyValidity;
    }

    /**
     * derived property setters
     */

    model_internal function set isValid_der(value:Boolean) : void
    {
        var oldValue:Boolean = model_internal::_isValid;
        if (oldValue !== value)
        {
            model_internal::_isValid = value;
            _model.model_internal::fireChangeEvent("isValid", oldValue, model_internal::_isValid);
        }
    }

    /**
     * derived property getters
     */

    [Transient]
    [Bindable(event="propertyChange")]
    public function get _model() : _VoClientMasterEntityMetadata
    {
        return model_internal::_dminternal_model;
    }

    public function set _model(value : _VoClientMasterEntityMetadata) : void
    {
        var oldValue : _VoClientMasterEntityMetadata = model_internal::_dminternal_model;
        if (oldValue !== value)
        {
            model_internal::_dminternal_model = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "_model", oldValue, model_internal::_dminternal_model));
        }
    }

    /**
     * methods
     */


    /**
     *  services
     */
    private var _managingService:com.adobe.fiber.services.IFiberManagingService;

    public function set managingService(managingService:com.adobe.fiber.services.IFiberManagingService):void
    {
        _managingService = managingService;
    }

    model_internal function set invalidConstraints_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_invalidConstraints;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_invalidConstraints = value;
            _model.model_internal::fireChangeEvent("invalidConstraints", oldValue, model_internal::_invalidConstraints);
        }
    }

    model_internal function set validationFailureMessages_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_validationFailureMessages;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_validationFailureMessages = value;
            _model.model_internal::fireChangeEvent("validationFailureMessages", oldValue, model_internal::_validationFailureMessages);
        }
    }

    model_internal var _doValidationCacheOfClient_remarks : Array = null;
    model_internal var _doValidationLastValOfClient_remarks : String;

    model_internal function _doValidationForClient_remarks(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_remarks != null && model_internal::_doValidationLastValOfClient_remarks == value)
           return model_internal::_doValidationCacheOfClient_remarks ;

        _model.model_internal::_client_remarksIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_remarksAvailable && _internal_client_remarks == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_remarks is required"));
        }

        model_internal::_doValidationCacheOfClient_remarks = validationFailures;
        model_internal::_doValidationLastValOfClient_remarks = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_contact_person : Array = null;
    model_internal var _doValidationLastValOfClient_contact_person : String;

    model_internal function _doValidationForClient_contact_person(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_contact_person != null && model_internal::_doValidationLastValOfClient_contact_person == value)
           return model_internal::_doValidationCacheOfClient_contact_person ;

        _model.model_internal::_client_contact_personIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_contact_personAvailable && _internal_client_contact_person == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_contact_person is required"));
        }

        model_internal::_doValidationCacheOfClient_contact_person = validationFailures;
        model_internal::_doValidationLastValOfClient_contact_person = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfCountry_name : Array = null;
    model_internal var _doValidationLastValOfCountry_name : String;

    model_internal function _doValidationForCountry_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfCountry_name != null && model_internal::_doValidationLastValOfCountry_name == value)
           return model_internal::_doValidationCacheOfCountry_name ;

        _model.model_internal::_country_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isCountry_nameAvailable && _internal_country_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "country_name is required"));
        }

        model_internal::_doValidationCacheOfCountry_name = validationFailures;
        model_internal::_doValidationLastValOfCountry_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_off_addr : Array = null;
    model_internal var _doValidationLastValOfClient_off_addr : String;

    model_internal function _doValidationForClient_off_addr(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_off_addr != null && model_internal::_doValidationLastValOfClient_off_addr == value)
           return model_internal::_doValidationCacheOfClient_off_addr ;

        _model.model_internal::_client_off_addrIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_off_addrAvailable && _internal_client_off_addr == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_off_addr is required"));
        }

        model_internal::_doValidationCacheOfClient_off_addr = validationFailures;
        model_internal::_doValidationLastValOfClient_off_addr = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_contact_phone : Array = null;
    model_internal var _doValidationLastValOfClient_contact_phone : String;

    model_internal function _doValidationForClient_contact_phone(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_contact_phone != null && model_internal::_doValidationLastValOfClient_contact_phone == value)
           return model_internal::_doValidationCacheOfClient_contact_phone ;

        _model.model_internal::_client_contact_phoneIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_contact_phoneAvailable && _internal_client_contact_phone == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_contact_phone is required"));
        }

        model_internal::_doValidationCacheOfClient_contact_phone = validationFailures;
        model_internal::_doValidationLastValOfClient_contact_phone = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_regno2 : Array = null;
    model_internal var _doValidationLastValOfClient_regno2 : String;

    model_internal function _doValidationForClient_regno2(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_regno2 != null && model_internal::_doValidationLastValOfClient_regno2 == value)
           return model_internal::_doValidationCacheOfClient_regno2 ;

        _model.model_internal::_client_regno2IsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_regno2Available && _internal_client_regno2 == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_regno2 is required"));
        }

        model_internal::_doValidationCacheOfClient_regno2 = validationFailures;
        model_internal::_doValidationLastValOfClient_regno2 = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_regno1 : Array = null;
    model_internal var _doValidationLastValOfClient_regno1 : String;

    model_internal function _doValidationForClient_regno1(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_regno1 != null && model_internal::_doValidationLastValOfClient_regno1 == value)
           return model_internal::_doValidationCacheOfClient_regno1 ;

        _model.model_internal::_client_regno1IsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_regno1Available && _internal_client_regno1 == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_regno1 is required"));
        }

        model_internal::_doValidationCacheOfClient_regno1 = validationFailures;
        model_internal::_doValidationLastValOfClient_regno1 = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_id : Array = null;
    model_internal var _doValidationLastValOfClient_id : String;

    model_internal function _doValidationForClient_id(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_id != null && model_internal::_doValidationLastValOfClient_id == value)
           return model_internal::_doValidationCacheOfClient_id ;

        _model.model_internal::_client_idIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_idAvailable && _internal_client_id == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_id is required"));
        }

        model_internal::_doValidationCacheOfClient_id = validationFailures;
        model_internal::_doValidationLastValOfClient_id = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_name : Array = null;
    model_internal var _doValidationLastValOfClient_name : String;

    model_internal function _doValidationForClient_name(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_name != null && model_internal::_doValidationLastValOfClient_name == value)
           return model_internal::_doValidationCacheOfClient_name ;

        _model.model_internal::_client_nameIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_nameAvailable && _internal_client_name == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_name is required"));
        }

        model_internal::_doValidationCacheOfClient_name = validationFailures;
        model_internal::_doValidationLastValOfClient_name = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfOff_phone : Array = null;
    model_internal var _doValidationLastValOfOff_phone : String;

    model_internal function _doValidationForOff_phone(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfOff_phone != null && model_internal::_doValidationLastValOfOff_phone == value)
           return model_internal::_doValidationCacheOfOff_phone ;

        _model.model_internal::_off_phoneIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isOff_phoneAvailable && _internal_off_phone == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "off_phone is required"));
        }

        model_internal::_doValidationCacheOfOff_phone = validationFailures;
        model_internal::_doValidationLastValOfOff_phone = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfCre_datetime : Array = null;
    model_internal var _doValidationLastValOfCre_datetime : String;

    model_internal function _doValidationForCre_datetime(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfCre_datetime != null && model_internal::_doValidationLastValOfCre_datetime == value)
           return model_internal::_doValidationCacheOfCre_datetime ;

        _model.model_internal::_cre_datetimeIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isCre_datetimeAvailable && _internal_cre_datetime == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "cre_datetime is required"));
        }

        model_internal::_doValidationCacheOfCre_datetime = validationFailures;
        model_internal::_doValidationLastValOfCre_datetime = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfDel_phone : Array = null;
    model_internal var _doValidationLastValOfDel_phone : String;

    model_internal function _doValidationForDel_phone(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfDel_phone != null && model_internal::_doValidationLastValOfDel_phone == value)
           return model_internal::_doValidationCacheOfDel_phone ;

        _model.model_internal::_del_phoneIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isDel_phoneAvailable && _internal_del_phone == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "del_phone is required"));
        }

        model_internal::_doValidationCacheOfDel_phone = validationFailures;
        model_internal::_doValidationLastValOfDel_phone = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_pricecategory : Array = null;
    model_internal var _doValidationLastValOfClient_pricecategory : String;

    model_internal function _doValidationForClient_pricecategory(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_pricecategory != null && model_internal::_doValidationLastValOfClient_pricecategory == value)
           return model_internal::_doValidationCacheOfClient_pricecategory ;

        _model.model_internal::_client_pricecategoryIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_pricecategoryAvailable && _internal_client_pricecategory == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_pricecategory is required"));
        }

        model_internal::_doValidationCacheOfClient_pricecategory = validationFailures;
        model_internal::_doValidationLastValOfClient_pricecategory = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_url : Array = null;
    model_internal var _doValidationLastValOfClient_url : String;

    model_internal function _doValidationForClient_url(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_url != null && model_internal::_doValidationLastValOfClient_url == value)
           return model_internal::_doValidationCacheOfClient_url ;

        _model.model_internal::_client_urlIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_urlAvailable && _internal_client_url == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_url is required"));
        }

        model_internal::_doValidationCacheOfClient_url = validationFailures;
        model_internal::_doValidationLastValOfClient_url = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_fax : Array = null;
    model_internal var _doValidationLastValOfClient_fax : String;

    model_internal function _doValidationForClient_fax(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_fax != null && model_internal::_doValidationLastValOfClient_fax == value)
           return model_internal::_doValidationCacheOfClient_fax ;

        _model.model_internal::_client_faxIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_faxAvailable && _internal_client_fax == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_fax is required"));
        }

        model_internal::_doValidationCacheOfClient_fax = validationFailures;
        model_internal::_doValidationLastValOfClient_fax = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfCust_type : Array = null;
    model_internal var _doValidationLastValOfCust_type : String;

    model_internal function _doValidationForCust_type(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfCust_type != null && model_internal::_doValidationLastValOfCust_type == value)
           return model_internal::_doValidationCacheOfCust_type ;

        _model.model_internal::_cust_typeIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isCust_typeAvailable && _internal_cust_type == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "cust_type is required"));
        }

        model_internal::_doValidationCacheOfCust_type = validationFailures;
        model_internal::_doValidationLastValOfCust_type = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_del_addr : Array = null;
    model_internal var _doValidationLastValOfClient_del_addr : String;

    model_internal function _doValidationForClient_del_addr(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_del_addr != null && model_internal::_doValidationLastValOfClient_del_addr == value)
           return model_internal::_doValidationCacheOfClient_del_addr ;

        _model.model_internal::_client_del_addrIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_del_addrAvailable && _internal_client_del_addr == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_del_addr is required"));
        }

        model_internal::_doValidationCacheOfClient_del_addr = validationFailures;
        model_internal::_doValidationLastValOfClient_del_addr = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_contact_email : Array = null;
    model_internal var _doValidationLastValOfClient_contact_email : String;

    model_internal function _doValidationForClient_contact_email(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_contact_email != null && model_internal::_doValidationLastValOfClient_contact_email == value)
           return model_internal::_doValidationCacheOfClient_contact_email ;

        _model.model_internal::_client_contact_emailIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_contact_emailAvailable && _internal_client_contact_email == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_contact_email is required"));
        }

        model_internal::_doValidationCacheOfClient_contact_email = validationFailures;
        model_internal::_doValidationLastValOfClient_contact_email = value;

        return validationFailures;
    }
    
    model_internal var _doValidationCacheOfClient_email : Array = null;
    model_internal var _doValidationLastValOfClient_email : String;

    model_internal function _doValidationForClient_email(valueIn:Object):Array
    {
        var value : String = valueIn as String;

        if (model_internal::_doValidationCacheOfClient_email != null && model_internal::_doValidationLastValOfClient_email == value)
           return model_internal::_doValidationCacheOfClient_email ;

        _model.model_internal::_client_emailIsValidCacheInitialized = true;
        var validationFailures:Array = new Array();
        var errorMessage:String;
        var failure:Boolean;

        var valRes:ValidationResult;
        if (_model.isClient_emailAvailable && _internal_client_email == null)
        {
            validationFailures.push(new ValidationResult(true, "", "", "client_email is required"));
        }

        model_internal::_doValidationCacheOfClient_email = validationFailures;
        model_internal::_doValidationLastValOfClient_email = value;

        return validationFailures;
    }
    

}

}
